package com.yxinsur.imc.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 待导入续期主表对象
 *
 * @author imc
 * @date 2021-05-26
 */
@Data
public class PrerenewalDetailVo {
    private static final long serialVersionUID = 1L;

    /**
     * 保单表外键
     */
    @Excel(name = "保单号")
    private String policyCode;

    /**
     * 保单表外键
     */
    @Excel(name = "投保单号")
    private String proposalCode;

    /**
     * 代理人姓名
     */
    @Excel(name = "服务代理人姓名")
    private String brokerName;

    /**
     * 代理人工号
     */
    @Excel(name = "服务代理人工号")
    private String brokerCode;

    /**
     * 保单表外键
     */
    @Excel(name = "管理机构")
    private String orgName;

    /**
     * 所属团队
     */
    @Excel(name = "所属团队")
    private String teamName;


    /**
     * 所属团队
     */
    @Excel(name = "供应商")
    private String supplierName;

    /**
     * 险种名称
     */
    @Excel(name = "险种名称")
    private String riskName;

    /**
     * 险种保费-首年的保费[可能存在非年缴多次的保费]
     */
    @Excel(name = "首年保费（元）")
    private BigDecimal prem;

    /**
     * 应缴保费
     */
    @Excel(name = "应缴保费（元）")
    private BigDecimal payablePrem;

    /**
     * 缴费频率类型
     */
    @Excel(name = "缴费频率", dictType = "charge_interval", comboDicType = "charge_interval")
    private String chargeIntervalEnum;

    /**
     * 缴费年期类型
     */
    @Excel(name = "缴费年期类型", dictType = "charge_period", comboDicType = "charge_period")
    private String chargePeriodEnum;
    /**
     * 缴费期限
     */
    @Excel(name = "缴费年期")
    private String chargePeriodValue;

    /**
     * 保单所在年度首年为1
     */
    @Excel(name = "保单险种年度")
    private Long policyYear;

    /**
     * 保单缴费次数，首次为1
     */
    @Excel(name = "保单险种缴费期数")
    private Long payNum;

    /**
     * 投保日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "投保日期")
    private String applyDate;
    /**
     * 承保日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "承保日期")
    private String insureDate;

    /**
     * 保单生效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期")
    private String effectiveDate;

    /**
     * 应缴日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "应缴日期")
    private String payableDate;


    private String id;

    /**
     * 待导入续期表ID
     */
    private String prerenewalId;

    /**
     * 机构ID
     */
    private Long orderId;


    /**
     * 险种外键
     */
    private Long orderRiskId;

    /**
     * 产品库表的外键（非我的产品表）
     */
    private Long repoInsId;

    /**
     * 险种代码
     */
    private String insCode;


    /**
     * 主险M附加险A
     */
    private String riskType;

    /**
     * 实缴保费
     */
    private BigDecimal paymentPrem;

    /**
     * 折标率
     */
    private BigDecimal standRate;

    /**
     * 当期保费对应标保
     */
    private BigDecimal standPrem;

    /**
     * 代理人佣金率
     */
    private BigDecimal commissionRate;

    /**
     * 佣金
     */
    private BigDecimal commission;

    /**
     * 供应商手续费率
     */
    private BigDecimal feeRate;

    /**
     * 供应商的基础手续费
     */
    private BigDecimal baseFee;

    /**
     * 险种基本保额
     */
    private BigDecimal amount;

    /**
     * 供应商折标率
     */
    private BigDecimal supplierStandRate;

    /**
     * 年期折算系数
     */
    private BigDecimal yearScale;

    /**
     * 保障期限类型
     */
    private String coveragePeriodEnum;

    /**
     * 保障期限
     */
    private String coveragePeriodValue;

    /**
     * 保障期限单位
     */
    private String coveragePeriodUnit;


    /**
     * 缴费期限单位
     */
    private String chargePeriodUnit;

    /**
     * 领取年龄
     */
    private String pensionAge;

    /**
     * 险种方案外键
     */
    private Long insSchemeId;

    /**
     * 因子1值
     */
    private String factor1Value;

    /**
     * 因子2值
     */
    private String factor2Value;

    /**
     * 因子3值
     */
    private String factor3Value;


    /**
     * 是否自动续保Y N
     */
    private String autoRenewalEnum;

    /**
     * 险种状态
     */
    private String riskStatusCode;


    /**
     * 应缴月
     */
    private String payableMonth;

    /**
     * 撤单日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date cancelDate;

    /**
     * 撤单原因
     */
    private String cancelCauseNote;

    /**
     * 保单失效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expiredDate;

    /**
     * 客户回执签收时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date custAckDate;

    /**
     * 回执录入时间(回执录入系统时间)
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date ackDate;

    /**
     * 宽限截止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date graceDate;

    /**
     * 豁免日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date waiverDate;

    /**
     * 豁免原因
     */
    private String waiverCause;

}
